<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>

    var ar = [10, 5, 3, 20, 15, 30, 24, 6]

    var ar2 = [10, 5, 3, 20]


    console.log("排序前：" + ar)
    // push()  add()
    // 函数  实现代码封装 提高代码的复用 减少代码冗余
    // 函数的定义  function 函数名(参数列表){ // 逻辑代码}

    function sortArray(arr) {  //  arr  形式参数
        // 冒泡排序
        for (var i = 1; i < arr.length; i++) {
            for (let j = 0; j < arr.length - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j]
                    arr[j] = arr[j + 1]
                    arr[j + 1] = temp
                }
            }
        }
    }

    function sortArray2(arr, type) { //  0  冒泡   1  选择  sortArray2(ar,0)
        // 选择排序
        if (type) {
            console.log("-----------选择排序--------------")
            for (let i = 0; i < arr.length; i++) {
                // i = 0
                var index = i
                for (var j = i + 1; j < arr.length; j++) {
                    if (arr[index] > arr[j]) {
                        index = j
                    }
                }
                // index 中存储的是 数组中最小值的索引
                if (index != i) {
                    var temp = arr[index]
                    arr[index] = arr[i]
                    arr[i] = temp
                }

            }
        }

        // 冒泡排序
        if (type == 0) {
            console.log("-----------冒泡排序--------------")
            for (var i = 1; i < arr.length; i++) {

                for (let j = 0; j < arr.length - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        var temp = arr[j]
                        arr[j] = arr[j + 1]
                        arr[j + 1] = temp
                    }
                }
            }
        }

    }


    // 调用 自定义数组排序函数  形式参数 形参  实际参数  实参
    //sortArray(ar)  //  ar  实际参数  实参     arr = ar

    sortArray2(ar, 1)

    console.log("排序后:" + ar)

</script>
</body>
</html>